package enumDemo;

/**
 * 我们手写这个枚举类 是默认继承enum这个类
 * 是类就会有所谓构造方法。枚举的构造方法是私有
 * 当我们在进行枚举对象后面加参数的时候，就需要写构造方法
 * 四个方法values，comparTo，ordinal，valueOf
 * 这里的构造是私有，我们是不是可以通过反射来拿到构造方法
 */
 enum testenum1{
	RED,WHITE,GREEN;

	public static void main(String[] args) {
		System.out.println(GREEN);
	}
}
public enum TestEnum{
	RED("张三",18),
	WHITE("lisi",45),
	GREEN("wangwu",85);
	private String name;
	private int age;
	//这里不写private也行，默认的
	private TestEnum(String name,int age) {
		this.name=name;
		this.age=age;
	}

	public static void main(String[] args) {
		//TestEnum[] testEnum=TestEnum.values();
		//vlaues是将枚举对象以数组的形式进行返回
		for (TestEnum t:TestEnum.values()) {
			System.out.println(t.ordinal());
			//ordinal是每个枚举对应的数字
		}
		TestEnum[] testEnums=TestEnum.values();
		for(int i = 0;i<testEnums.length;i++) {
			System.out.println(testEnums[i]+" "+testEnums[i].name+" "+testEnums[i].ordinal());
		}
		System.out.println(TestEnum.valueOf("GREEN"));
		//将字符串转化成枚举类型
	}

	public static void main1(String[] args) {
		TestEnum testEnum=TestEnum.RED;
		switch(testEnum) {
			case RED:
				System.out.println("红色");
				break;
			case WHITE:
				System.out.println("绿色");
				break;
			case GREEN:
				System.out.println("白色");
				break;
			default:
				System.out.println("其他颜色");
				break;
		}
	}
}
